package com.smart.community.property.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.smart.community.property.vo.RepairmanVO;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 维修人员Mapper接口
 * @author Wu.Liang
 * @since 2025-01-30
 * @version 1.0.0
 */
@Mapper
public interface RepairmanMapper extends BaseMapper<RepairmanVO> {

    /**
     * 根据数据权限查询维修人员列表
     * @param communityIds 社区ID列表
     * @param propertyCompanyIds 物业公司ID列表
     * @param status 状态
     * @return 维修人员列表
     */
    List<RepairmanVO> selectRepairmanList(
            @Param("communityIds") List<Long> communityIds,
            @Param("propertyCompanyIds") List<Long> propertyCompanyIds,
            @Param("status") Integer status);

    /**
     * 根据社区ID查询维修人员列表
     * @param communityId 社区ID
     * @param status 状态
     * @return 维修人员列表
     */
    List<RepairmanVO> selectRepairmanByCommunity(
            @Param("communityId") Long communityId,
            @Param("status") Integer status);

    /**
     * 根据物业公司ID查询维修人员列表
     * @param propertyCompanyId 物业公司ID
     * @param status 状态
     * @return 维修人员列表
     */
    List<RepairmanVO> selectRepairmanByPropertyCompany(
            @Param("propertyCompanyId") Long propertyCompanyId,
            @Param("status") Integer status);

    /**
     * 查询所有维修人员（超级管理员使用）
     * @param status 状态
     * @return 维修人员列表
     */
    List<RepairmanVO> selectAllRepairman(@Param("status") Integer status);
} 